[INFO] cloning repository https://github.com/kaiobatista/nes_emulator_rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/kaiobatista/nes_emulator_rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkaiobatista%2Fnes_emulator_rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkaiobatista%2Fnes_emulator_rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 764bf31b51d3ea843fe090e676eb65195438a953
[INFO] checking kaiobatista/nes_emulator_rust against try#f4690f24e7d9bcb0b168a02b06dd61391e8bd55a for pr-157814-crater-rollup
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkaiobatista%2Fnes_emulator_rust" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/kaiobatista/nes_emulator_rust
[INFO] finished tweaking git repo https://github.com/kaiobatista/nes_emulator_rust
[INFO] tweaked toml for git repo https://github.com/kaiobatista/nes_emulator_rust written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/kaiobatista/nes_emulator_rust on toolchain f4690f24e7d9bcb0b168a02b06dd61391e8bd55a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f4690f24e7d9bcb0b168a02b06dd61391e8bd55a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/kaiobatista/nes_emulator_rust already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f4690f24e7d9bcb0b168a02b06dd61391e8bd55a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] checking kaiobatista/nes_emulator_rust against try#f4690f24e7d9bcb0b168a02b06dd61391e8bd55a for pr-157814-crater-rollup
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkaiobatista%2Fnes_emulator_rust" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/kaiobatista/nes_emulator_rust
[INFO] finished tweaking git repo https://github.com/kaiobatista/nes_emulator_rust
[INFO] tweaked toml for git repo https://github.com/kaiobatista/nes_emulator_rust written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/kaiobatista/nes_emulator_rust on toolchain f4690f24e7d9bcb0b168a02b06dd61391e8bd55a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f4690f24e7d9bcb0b168a02b06dd61391e8bd55a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/kaiobatista/nes_emulator_rust already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f4690f24e7d9bcb0b168a02b06dd61391e8bd55a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded sdl2 v0.38.0
[INFO] [stderr]   Downloaded sdl2-sys v0.38.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7cf07dcec6eec8f91d8fcff9552b5c74122c05467aaf1800be6da9d6f61e2ab2" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 8685ca8568fc5fca0435d06bb55b55c76a606f09724e28b276e6910d657bd9de
[INFO] running `Command { std: "docker" "start" "8685ca8568fc5fca0435d06bb55b55c76a606f09724e28b276e6910d657bd9de", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "8685ca8568fc5fca0435d06bb55b55c76a606f09724e28b276e6910d657bd9de" "/opt/rustwide/cargo-home/bin/cargo" "+f4690f24e7d9bcb0b168a02b06dd61391e8bd55a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8685ca8568fc5fca0435d06bb55b55c76a606f09724e28b276e6910d657bd9de", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "8685ca8568fc5fca0435d06bb55b55c76a606f09724e28b276e6910d657bd9de" "/opt/rustwide/cargo-home/bin/cargo" "+f4690f24e7d9bcb0b168a02b06dd61391e8bd55a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling version-compare v0.1.1
[INFO] [stderr]    Compiling libc v0.2.178
[INFO] [stderr]    Compiling sdl2 v0.38.0
[INFO] [stderr]    Compiling sdl2-sys v0.38.0
[INFO] [stderr]     Checking nes_emulator_rust v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/cpu.rs:936:29
[INFO] [stdout]     |
[INFO] [stdout] 936 |         self.registers.pc = ((high << 8) | low);
[INFO] [stdout]     |                             ^                 ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 936 -         self.registers.pc = ((high << 8) | low);
[INFO] [stdout] 936 +         self.registers.pc = (high << 8) | low ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]   --> src/sdl_ui.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/cpu.rs:936:29
[INFO] [stdout]     |
[INFO] [stdout] 936 |         self.registers.pc = ((high << 8) | low);
[INFO] [stdout]     |                             ^                 ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 936 -         self.registers.pc = ((high << 8) | low);
[INFO] [stdout] 936 +         self.registers.pc = (high << 8) | low ;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]   --> src/sdl_ui.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::thread;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ppu.rs:322:29
[INFO] [stdout]     |
[INFO] [stdout] 322 |                         let mut color: Color = get_color_from_palette(final_palette_index);
[INFO] [stdout]     |                             ----^^^^^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/sdl_ui.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 |     let mut font = ttf_context.load_font(font_path, 20).unwrap();
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `font`
[INFO] [stdout]   --> src/sdl_ui.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 |     let mut font = ttf_context.load_font(font_path, 20).unwrap();
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_font`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `repeat`
[INFO] [stdout]    --> src/sdl_ui.rs:143:50
[INFO] [stdout]     |
[INFO] [stdout] 143 |             Event::KeyDown { keycode: Some(key), repeat, ..} => {
[INFO] [stdout]     |                                                  ^^^^^^ help: try ignoring the field: `repeat: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `repeat`
[INFO] [stdout]    --> src/sdl_ui.rs:156:48
[INFO] [stdout]     |
[INFO] [stdout] 156 |             Event::KeyUp { keycode: Some(key), repeat, ..} => {
[INFO] [stdout]     |                                                ^^^^^^ help: try ignoring the field: `repeat: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ppu.rs:322:29
[INFO] [stdout]     |
[INFO] [stdout] 322 |                         let mut color: Color = get_color_from_palette(final_palette_index);
[INFO] [stdout]     |                             ----^^^^^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/sdl_ui.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 |     let mut font = ttf_context.load_font(font_path, 20).unwrap();
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `font`
[INFO] [stdout]   --> src/sdl_ui.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 |     let mut font = ttf_context.load_font(font_path, 20).unwrap();
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_font`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `canvas`
[INFO] [stdout]    --> src/sdl_ui.rs:327:5
[INFO] [stdout]     |
[INFO] [stdout] 327 |     canvas: &mut Canvas<Window>,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_canvas`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `repeat`
[INFO] [stdout]    --> src/sdl_ui.rs:143:50
[INFO] [stdout]     |
[INFO] [stdout] 143 |             Event::KeyDown { keycode: Some(key), repeat, ..} => {
[INFO] [stdout]     |                                                  ^^^^^^ help: try ignoring the field: `repeat: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `repeat`
[INFO] [stdout]    --> src/sdl_ui.rs:156:48
[INFO] [stdout]     |
[INFO] [stdout] 156 |             Event::KeyUp { keycode: Some(key), repeat, ..} => {
[INFO] [stdout]     |                                                ^^^^^^ help: try ignoring the field: `repeat: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `value` is never read
[INFO] [stdout]   --> src/controller.rs:36:25
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let mut value = 0;
[INFO] [stdout]    |                         ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 45 |                 value = 1
[INFO] [stdout]    |                 --------- `value` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `canvas`
[INFO] [stdout]    --> src/sdl_ui.rs:327:5
[INFO] [stdout]     |
[INFO] [stdout] 327 |     canvas: &mut Canvas<Window>,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_canvas`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `value` is never read
[INFO] [stdout]   --> src/controller.rs:36:25
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let mut value = 0;
[INFO] [stdout]    |                         ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 45 |                 value = 1
[INFO] [stdout]    |                 --------- `value` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Header` is more private than the item `Rom::header`
[INFO] [stdout]   --> src/ines_file.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub header: Header,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^ field `Rom::header` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Header` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/ines_file.rs:5:1
[INFO] [stdout]    |
[INFO] [stdout]  5 | struct Header {
[INFO] [stdout]    | ^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> src/cpu.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct Instruction {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 25 |     pub name: &'static str,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `irq`, `xxx`, and `cli` are never used
[INFO] [stdout]    --> src/cpu.rs:80:12
[INFO] [stdout]     |
[INFO] [stdout]  40 | impl<'lifetime> CPU <'lifetime> {
[INFO] [stdout]     | ------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub fn irq(&mut self) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 716 |     fn xxx(&mut self) -> u8 {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 882 |     fn cli(&mut self) -> u8 {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_pattern_table` is never used
[INFO] [stdout]    --> src/ppu.rs:294:12
[INFO] [stdout]     |
[INFO] [stdout]  53 | impl PPU {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 294 |     pub fn get_pattern_table(&self, rom: &Rom, table_idx: u8, palette_idx: u8) -> Vec<Color> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_text` is never used
[INFO] [stdout]    --> src/sdl_ui.rs:175:4
[INFO] [stdout]     |
[INFO] [stdout] 175 | fn draw_text<'a>(text: String, color: Color, position: Vec<i32>, canvas: &mut Canvas<Window>, font: &mut Font, texture_creator: &'a...
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_debug_info` is never used
[INFO] [stdout]    --> src/sdl_ui.rs:191:4
[INFO] [stdout]     |
[INFO] [stdout] 191 | fn render_debug_info<'a>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_pattern_table` is never used
[INFO] [stdout]    --> src/sdl_ui.rs:286:4
[INFO] [stdout]     |
[INFO] [stdout] 286 | fn render_pattern_table<'a>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `tag` and `flags7` are never read
[INFO] [stdout]   --> src/ines_file.rs:6:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | struct Header {
[INFO] [stdout]    |        ------ fields in this struct
[INFO] [stdout]  6 |     tag: [u8; 4],
[INFO] [stdout]    |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 10 |     flags7: u8,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `header` and `trainer` are never read
[INFO] [stdout]   --> src/ines_file.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Rom {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] 14 |     pub header: Header,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 15 |     pub trainer: Vec<u8>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SELECT` is never used
[INFO] [stdout]  --> src/controller.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 |     pub const SELECT: u8 = 1 << 5;
[INFO] [stdout]   |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: useless conversion to the same type: `i32`
[INFO] [stdout]    --> src/sdl_ui.rs:183:9
[INFO] [stdout]     |
[INFO] [stdout] 183 |         position[0].into(),
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<i32 as Into<i32>::into(val) to avoid triggering this lint
[INFO] [stdout]     = note: `#[warn(self_type_conversion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: useless conversion to the same type: `i32`
[INFO] [stdout]    --> src/sdl_ui.rs:184:9
[INFO] [stdout]     |
[INFO] [stdout] 184 |         position[1].into(),
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<i32 as Into<i32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `Button` should have a snake case name
[INFO] [stdout]  --> src/controller.rs:1:9
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub mod Button {
[INFO] [stdout]   |         ^^^^^^ help: convert the identifier to snake case: `button`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Header` is more private than the item `Rom::header`
[INFO] [stdout]   --> src/ines_file.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub header: Header,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^ field `Rom::header` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `Header` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/ines_file.rs:5:1
[INFO] [stdout]    |
[INFO] [stdout]  5 | struct Header {
[INFO] [stdout]    | ^^^^^^^^^^^^^
[INFO] [stdout]    = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> src/cpu.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct Instruction {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 25 |     pub name: &'static str,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `irq`, `xxx`, and `cli` are never used
[INFO] [stdout]    --> src/cpu.rs:80:12
[INFO] [stdout]     |
[INFO] [stdout]  40 | impl<'lifetime> CPU <'lifetime> {
[INFO] [stdout]     | ------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  80 |     pub fn irq(&mut self) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 716 |     fn xxx(&mut self) -> u8 {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 882 |     fn cli(&mut self) -> u8 {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_pattern_table` is never used
[INFO] [stdout]    --> src/ppu.rs:294:12
[INFO] [stdout]     |
[INFO] [stdout]  53 | impl PPU {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 294 |     pub fn get_pattern_table(&self, rom: &Rom, table_idx: u8, palette_idx: u8) -> Vec<Color> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_text` is never used
[INFO] [stdout]    --> src/sdl_ui.rs:175:4
[INFO] [stdout]     |
[INFO] [stdout] 175 | fn draw_text<'a>(text: String, color: Color, position: Vec<i32>, canvas: &mut Canvas<Window>, font: &mut Font, texture_creator: &'a...
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_debug_info` is never used
[INFO] [stdout]    --> src/sdl_ui.rs:191:4
[INFO] [stdout]     |
[INFO] [stdout] 191 | fn render_debug_info<'a>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_pattern_table` is never used
[INFO] [stdout]    --> src/sdl_ui.rs:286:4
[INFO] [stdout]     |
[INFO] [stdout] 286 | fn render_pattern_table<'a>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `tag` and `flags7` are never read
[INFO] [stdout]   --> src/ines_file.rs:6:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | struct Header {
[INFO] [stdout]    |        ------ fields in this struct
[INFO] [stdout]  6 |     tag: [u8; 4],
[INFO] [stdout]    |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 10 |     flags7: u8,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `header` and `trainer` are never read
[INFO] [stdout]   --> src/ines_file.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Rom {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] 14 |     pub header: Header,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 15 |     pub trainer: Vec<u8>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SELECT` is never used
[INFO] [stdout]  --> src/controller.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 |     pub const SELECT: u8 = 1 << 5;
[INFO] [stdout]   |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: useless conversion to the same type: `i32`
[INFO] [stdout]    --> src/sdl_ui.rs:183:9
[INFO] [stdout]     |
[INFO] [stdout] 183 |         position[0].into(),
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<i32 as Into<i32>::into(val) to avoid triggering this lint
[INFO] [stdout]     = note: `#[warn(self_type_conversion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: useless conversion to the same type: `i32`
[INFO] [stdout]    --> src/sdl_ui.rs:184:9
[INFO] [stdout]     |
[INFO] [stdout] 184 |         position[1].into(),
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<i32 as Into<i32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `Button` should have a snake case name
[INFO] [stdout]  --> src/controller.rs:1:9
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub mod Button {
[INFO] [stdout]   |         ^^^^^^ help: convert the identifier to snake case: `button`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.33s
[INFO] running `Command { std: "docker" "inspect" "8685ca8568fc5fca0435d06bb55b55c76a606f09724e28b276e6910d657bd9de", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8685ca8568fc5fca0435d06bb55b55c76a606f09724e28b276e6910d657bd9de", kill_on_drop: false }`
[INFO] [stdout] 8685ca8568fc5fca0435d06bb55b55c76a606f09724e28b276e6910d657bd9de
